home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
asmutil
/
uasm.zip
/
Z8VAL.MAC
< prev
Wrap
Text File
|
1986-04-06
|
8KB
|
464 lines
*
* Z8 Validation Suite
* 5 April 1986
*
*
* condition codes
*
f equ 0
lt equ 1
le equ 2
ule equ 3
ov equ 4
mi equ 5
eq equ 6
z equ 6
c equ 7
ult equ 7
a equ 8
ge equ 9
gt equ 10
ugt equ 11
nov equ 12
pl equ 13
nz equ 14
ne equ 14
nc equ 15
uge equ 15
dseg
*
* Registers in the Data Segment
*
p0 ds 1
p1 ds 1
p2 ds 1
p3 ds 1
rp4 ds 0
p4 ds 1
ds 1
rp6 ds 2
rp8 ds 2
*
*
*
rseg
*
* Working Registers
*
r0 ds 1
r1 ds 1
wp2 ds 0
r2 ds 1
r3 ds 1
wp4 ds 0
r4 ds 1
r5 ds 1
wp6 ds 0
r6 ds 1
r7 ds 1
r8 ds 1
r9 ds 1
r10 ds 1
r11 ds 1
r12 ds 1
r13 ds 1
r14 ds 1
r15 ds 1
*
*
*
cseg
group_0 dec p0
dec r0
dec @p1
add r0,r1
add r0,@r1
add p0,p1
add p0,@p1
add p2,#14
add @p2,#14
ld r0,p3
ld p3,r0
djnz r0,group_0
jr f,group_0
jr group_0
ld r0,#0
jp f,group_0
jp group_0
inc r0
db 0Fx gap
jr f,$-7
jp f,$-10
*
* Group_ 1
*
group_1 rlc p0
rlc r0
rlc @p1
adc r0,r1
adc r0,@r1
adc p0,p1
adc p0,@p1
adc p2,#14
adc @p2,#14
ld r1,p3
ld p3,r1
djnz r1,group_1
jr lt,group_1
ld r1,#0
jp lt,group_1
inc r1
db 1Fx gap
*
* Group_ 2
*
group_2 inc p0
inc @p1
sub r0,r1
sub r0,@r1
sub p0,p1
sub p0,@p1
sub p2,#14
sub @p2,#14
ld r2,p3
ld p3,r2
djnz r2,group_2
jr le,group_2
ld r2,#0
jp le,group_2
inc r2
db 2Fx gap
*
* Group_ 3
*
group_3 jp @rp4
srp #10
sbc r0,r1
sbc r0,@r1
sbc p0,p1
sbc p0,@p1
sbc p2,#14
sbc @p2,#14
ld r3,p3
ld p3,r3
djnz r3,group_3
jr ule,group_3
ld r3,#0
jp ule,group_3
inc r3
db 3Fx gap
*
* Group_ 4
*
group_4 da p0
da r0
da @p1
or r0,r1
or r0,@r1
or p0,p1
or p0,@p1
or p2,#14
or @p2,#14
ld r4,p3
ld p3,r4
djnz r4,group_4
jr ov,group_4
ld r4,#0
jp ov,group_4
inc r4
db 4Fx gap
*
* Group_ 5
*
group_5 pop p0
pop r0
pop @p1
and r0,r1
and r0,@r1
and p0,p1
and p0,@p1
and p2,#14
and @p2,#14
ld r5,p3
ld p3,r5
djnz r5,group_5
jr mi,group_5
ld r5,#0
jp mi,group_5
inc r5
db 5Fx gap
*
* Group_ 6
*
group_6 com p0
com r0
com @p1
tcm r0,r1
tcm r0,@r1
tcm p0,p1
tcm p0,@p1
tcm p2,#14
tcm @p2,#14
ld r6,p3
ld p3,r6
djnz r6,group_6
jr z,group_6
ld r6,#0
jp z,group_6
inc r6
db 6Fx gap
*
* Group_ 7
*
group_7 push p0
push r0
push @p1
tm r0,r1
tm r0,@r1
tm p0,p1
tm p0,@p1
tm p2,#14
tm @p2,#14
ld r7,p3
ld p3,r7
djnz r7,group_7
jr c,group_7
ld r7,#0
jp c,group_7
inc r7
db 7Fx gap
*
* Group_ 8
*
group_8 decw p0
decw r0
decw @p1
*
lde r2,@wp4
ldei @r2,@wp4
*
db 84x,85x,86x,87x
*
ld r8,p3
ld p3,r8
djnz r8,group_8
jr a,group_8
ld r8,#0
jp a,group_8
inc r8
*
di
*
* Group_ 9
*
group_9 rl p0
rl r0
rl @p1
*
lde @@wp4,r2
ldei @@wp4,@r2
*
db 094x,095x,096x,097x
*
ld r9,p3
ld p3,r9
djnz r9,group_9
jr ge,group_9
ld r9,#0
jp ge,group_9
inc r9
*
ei
*
* Group_ 10
*
group_10 incw p0
incw r0
incw @p1
*
cp r0,r1
cp r0,@r1
cp p0,p1
cp p0,@p1
cp p2,#14
cp @p2,#14
*
ld r10,p3
ld p3,r10
djnz r10,group_10
jr gt,group_10
ld r10,#0
jp gt,group_10
inc r10
*
ret
*
* Group_ 11
*
group_11 clr p0
clr r0
clr @p1
*
xor r0,r1
xor r0,@r1
xor p0,p1
xor p0,@p1
xor p2,#14
xor @p2,#14
*
ld r11,p3
ld p3,r11
djnz r11,group_11
jr ugt,group_11
ld r11,#0
jp ugt,group_11
inc r11
*
iret
*
* Group_ 12
*
group_12 rrc p0
rrc r0
rrc @p1
*
ldc r2,@wp4
ldci @r2,@wp4
*
db 0C4x,0C5x,0C6x
*
ld r0,p4(r2)
*
ld r12,p3
ld p3,r12
djnz r12,group_12
jr nov,group_12
ld r12,#0
jp nov,group_12
inc r12
*
rcf
*
* Group_ 13
*
group_13 sra p0
sra r0
sra @p1
*
ldc @@wp4,r2
ldci @@wp4,@r2
*
call @p2
*
db 0D5x gap
*
call subr
*
ld p4(r2),r0
*
ld r13,p3
ld p3,r13
djnz r13,group_13
jr pl,group_13
ld r13,#0
jp pl,group_13
inc r13
*
scf
*
* Group_ 14
*
group_14 rr p0
rr r0
rr @p1
*
db 0E2x gap
*
ld r0,@r1
ld p0,p1
ld p0,@p1
ld p2,#14
ld @p2,#14
*
ld r14,p3
ld p3,r14
djnz r14,group_14
jr nz,group_14
ld r14,#0
jp nz,group_14
inc r14
*
ccf
*
* Group_15
*
group_15 swap p0
swap r0
swap @p1
*
db 0F2x gap
*
ld @r1,r0
*
db 0F4x
*
ld @p1,p0
*
db 0F6x,0F7x
*
ld r15,p3
ld p3,r15
djnz r15,group_15
jr nc,group_15
ld r15,#0
jp nc,group_15
inc r15
*
subr nop
ret